package com.kinyx.framework.db.sentence.res;

/**
 * 增删改查语句构建工具
 */
public class KSQLBuilder {

	/**
	 * 构建INSERT语句
	 * @param table 表子句
	 * @return INSERT语句
	 */
	public static KINSERT insert(final Table table) { return new KINSERT(table); }

	/**
	 * 构建INSERT语句
	 * @param tableClass 表映射类型
	 * @return INSERT语句
	 */
	public static KINSERT insert(final Class<?> tableClass) { return new KINSERT(Res.of(tableClass)); }

	/**
	 * 构建DELETE语句
	 * @param table 表子句
	 * @return DELETE语句
	 */
	public static KDELETE delete(final Table table) { return new KDELETE(table); }

	/**
	 * 构建DELETE语句
	 * @param tableClass 表映射类型
	 * @return DELETE语句
	 */
	public static KDELETE delete(final Class<?> tableClass) { return new KDELETE(Res.of(tableClass)); }

	/**
	 * 构建UPDATE语句
	 * @param table 表子句
	 * @return UPDATE语句
	 */
	public static KUPDATE update(final Table table) { return new KUPDATE(table); }

	/**
	 * 构建UPDATE语句
	 * @param tableClass 表映射类型
	 * @return UPDATE语句
	 */
	public static KUPDATE update(final Class<?> tableClass) { return new KUPDATE(Res.of(tableClass)); }

	/**
	 * 构建SELECT语句
	 * @param isSQL true: SQL语句; false: HQL语句;
	 * @return SELECT语句
	 */
	public static KSELECT select(final boolean isSQL) { return new KSELECT(isSQL); }

}
